<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        class TrafficLight {
            // 定义颜色属性
            color;
    
            // 构造函数，初始化颜色为红色
            constructor() {
                this.color = 'red';
            }
    
            // 异步切换颜色函数，等待3秒后切换颜色
            async switchColor() {
                await new Promise(resolve => setTimeout(resolve, 3000));
                if (this.color === 'red') {
                    this.color = 'green';
                } else if (this.color === 'green') {
                    this.color = 'yellow';
                } else if (this.color === 'yellow') {
                    this.color = 'red';
                }
            }
    
            // 获取当前颜色函数
            getColor() {
                return this.color;
            }
        }
    
        // 创建一个交通灯对象
        let trafficLight = new TrafficLight();
    
        // 定义一个异步函数main
        async function main() {
            // 无限循环
            while (true) {
                // 打印当前交通灯的颜色
                console.log(`当前颜色:${trafficLight.getColor()}`);
                // 等待交通灯切换颜色
                await trafficLight.switchColor();
            }
        }
    
        // 调用main函数
        main();
    </script>
</body>
</html>